package scutse.qixuan.util;

import java.net.URL;
import java.util.ArrayList;

import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;

public class AnalyseURL {
	
	/**找出该URL下的所有a href链接
	 * @param url 要处理的url地址
	 * @return 链接数组
	 */
	public static ArrayList<URL> getAllLink(String url){
		try
	    {
			
			ArrayList<URL> links = new ArrayList<URL>();
	      // 通过过滤器过滤出<A>标签
	      Parser parser = new Parser(url);
	      NodeList nodeList = parser
	          .extractAllNodesThatMatch(new NodeFilter()
	          {
	            // 实现该方法,用以过滤标签
	            public boolean accept(Node node)
	            {
	              if (node instanceof LinkTag)
	                return true;
	              return false;
	            }

	          });
	      
	      for (int i = 0; i < nodeList.size(); i++)
	      {
	        LinkTag n = (LinkTag) nodeList.elementAt(i);
	        links.add(new URL(n.extractLink()));
	      }
	      return links;
	    }
	    catch (Exception e)
	    {
	      e.printStackTrace();
	    }
		return null;
	}
	
	/**找出该URL下的所有a href链接
	 * @param url 要处理的url地址
	 * @return 链接数组
	 */
	public static ArrayList<URL> getAllLink(URL url){
		return getAllLink(url.toString());
	}
}
